package cn.clwxy.gdz.controller;



import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import cn.clwxy.gdz.dao.TeacherDao;
import cn.clwxy.gdz.dao.TeacherDaoImpl;
import cn.clwxy.gdz.entity.Teacher;
import cn.clwxy.gdz.util.JsonSerializeHelper;
@WebServlet("/PersonalCenterChangeImgServlet")
public class PersonalCenterChangeImgServlet extends HttpServlet {



	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("jinru");
		// �õ��ϴ��ļ��ı���Ŀ¼�����ϴ����ļ������WEB-INFĿ¼�£����������ֱ�ӷ��ʣ���֤�ϴ��ļ��İ�ȫ
		String savePath = this.getServletContext().getRealPath("source\\img");
		System.out.println("原savePate="+savePath);
		String filename="";
		File file = new File(savePath);
		List message2 = new ArrayList();
		
		
		// �ж��ϴ��ļ��ı���Ŀ¼�Ƿ����
		if (!file.exists() && !file.isDirectory()) {
			System.out.println(savePath + "Ŀ¼�����ڣ���Ҫ����");
			// ����Ŀ¼
			file.mkdir();
		}
		// ��Ϣ��ʾ
		String message = "";
		try {
			// ʹ��Apache�ļ��ϴ���������ļ��ϴ����裺
			// 1������һ��DiskFileItemFactory����
			DiskFileItemFactory factory = new DiskFileItemFactory();
			// 2������һ���ļ��ϴ�������
			ServletFileUpload upload = new ServletFileUpload(factory);
			// ����ϴ��ļ������������
			upload.setHeaderEncoding("UTF-8");
			// 3���ж��ύ����������Ƿ����ϴ��?�����
			if (!ServletFileUpload.isMultipartContent(request)) {
				// ���մ�ͳ��ʽ��ȡ���
				return;
			}
			// 4��ʹ��ServletFileUpload�����������ϴ���ݣ��������ص���һ��List<FileItem>���ϣ�ÿһ��FileItem��Ӧһ��Form�?��������
			List<FileItem> list = upload.parseRequest(request);
			for (FileItem item : list) {
				// ���fileitem�з�װ������ͨ����������
				if (item.isFormField()) {
					String name = item.getFieldName();
					// �����ͨ���������ݵ�������������
					String value = item.getString("UTF-8");
					// value = new String(value.getBytes("iso8859-1"),"UTF-8");
					message2.add(value);
					 System.out.println(name + "=" + value);
				} else {// ���fileitem�з�װ�����ϴ��ļ�
						// �õ��ϴ����ļ���ƣ�
					filename = item.getName();
					System.out.println(filename);
					
					if (filename == null || filename.trim().equals("")) {
						continue;
					}
					// ע�⣺��ͬ��������ύ���ļ����ǲ�һ��ģ���Щ������ύ�������ļ����Ǵ���·���ģ��磺
					// c:\a\b\1.txt������Щֻ�ǵ������ļ����磺1.txt
					// �����ȡ�����ϴ��ļ����ļ����·�����֣�ֻ�����ļ����
					UUID uuid = UUID.randomUUID();
					filename = uuid+filename
							.substring(filename.lastIndexOf("\\") + 1);
					message2.add(filename);
					// ��ȡitem�е��ϴ��ļ���������
					InputStream in = item.getInputStream();
					// ����һ���ļ������
					FileOutputStream out = new FileOutputStream(savePath + "\\"
							+ filename);
					// ����һ��������
					byte buffer[] = new byte[1024];
					// �ж��������е�����Ƿ��Ѿ�����ı�ʶ
					int len = 0;
					// ѭ�������������뵽�������У�(len=in.read(buffer))>0�ͱ�ʾin���滹�����
					while ((len = in.read(buffer)) > 0) {
						// ʹ��FileOutputStream�����������������д�뵽ָ����Ŀ¼(savePath + "\\"
						// + filename)����
						out.write(buffer, 0, len);
					}
					// �ر�������
					in.close();
					// �ر������
					out.close();
					// ɾ�����ļ��ϴ�ʱ��ɵ���ʱ�ļ�
					item.delete();
					message = "成功";
					System.out.println("savePath="+savePath);
					System.out.println("filename="+filename);
//					修改用户的imgId
					TeacherDao teacherDao=new TeacherDaoImpl();
					Integer id=(Integer)request.getSession().getAttribute("id");
					String pathlong=savePath+"\\"+filename;
					int index=pathlong.indexOf("\\GDZ");
					String pathReal=pathlong.substring(index);
					System.out.println("pathReal"+pathReal);
					int resu=teacherDao.changeHeadPic(id,pathReal);
					System.out.println("图片数据库更改："+resu);
					
					
				}
			}
		} catch (Exception e) {
			message = "失败";
			e.printStackTrace();
		}
//		接下来改变用户的imgId的值，同时改变img表中的数据
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		String data = JsonSerializeHelper.JsonSerializer(message);
		response.setContentType("application/json;charset=utf-8");
		PrintWriter pw = response.getWriter();
		pw.print(data);
		pw.flush();
		pw.close();
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}
}